﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Sigecov.Models;
namespace Sigecov.Formularios
{
    public partial class FrmGerencialFornecedor : Form
    {
        public FrmGerencialFornecedor()
        {
            InitializeComponent();
        }
        private void ManipularFornecedores()
        {
            if (ckbAtivos.Checked && (!ckbInativos.Checked))
                Fornecedore.ListarFornecedor(dgvFornecedor, "A");
            else if (ckbInativos.Checked && (!ckbAtivos.Checked))
                Fornecedore.ListarFornecedor(dgvFornecedor, "I");
            else if (!((ckbAtivos.Checked) && (ckbInativos.Checked)))
                Fornecedore.ListarFornecedor(dgvFornecedor, "");
            else if ((ckbAtivos.Checked) && (ckbInativos.Checked))
                Fornecedore.ListarFornecedor(dgvFornecedor, "AI");
        }
        private void btnAtualizarFornecedores_Click(object sender, EventArgs e)
        {
            ManipularFornecedores();
        }

        private void btnNovoFornecedor_Click(object sender, EventArgs e)
        {
            FrmBase._tipoOperacao = "INCLUIR";
            FrmFornecedor fornecedor = new FrmFornecedor();
            DialogResult confirmacao = fornecedor.ShowDialog();
            if (confirmacao.ToString().ToUpper() == "CANCEL")
                ManipularFornecedores();
        }

        private void btnAlterarFornecedor_Click(object sender, EventArgs e)
        {
            if (dgvFornecedor.Rows.Count > 0)
            {
                FrmBase._idAcao = Convert.ToInt32(dgvFornecedor.SelectedCells[0].Value);
                FrmBase._tipoOperacao = "ALTERAR";
                FrmFornecedor fornecedor = new FrmFornecedor();
                DialogResult confirmacao = fornecedor.ShowDialog();
                if (confirmacao.ToString().ToUpper() == "CANCEL")
                    ManipularFornecedores();
            }
            else
                MessageBox.Show("Nenhum item foi selecionado!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }

        private void btnDeletarFornecedor_Click(object sender, EventArgs e)
        {
            if (dgvFornecedor.Rows.Count > 0)
            {
                FrmBase._idAcao = Convert.ToInt32(dgvFornecedor.SelectedCells[0].Value);
                FrmBase._tipoOperacao = "DELETAR";
                FrmFornecedor fornecedor = new FrmFornecedor();
                DialogResult confirmacao = fornecedor.ShowDialog();
                if (confirmacao.ToString().ToUpper() == "CANCEL")
                    ManipularFornecedores();
            }
            else
                MessageBox.Show("Nenhum item foi selecionado!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }

        private void FrmGerencialFornecedor_Load(object sender, EventArgs e)
        {
            txtPesquisa.MaxLength = 9;
            ManipularFornecedores();
        }

        private void txtPesquisa_TextChanged(object sender, EventArgs e)
        {
            if (!(string.IsNullOrWhiteSpace(txtPesquisa.Text)))
            {
                using (SigecovContext DB = new SigecovContext())
                {
                    if (rdbCodigo.Checked)
                    {
                        int _codigo = Convert.ToInt32(txtPesquisa.Text);
                        dgvFornecedor.DataSource = DB.Fornecedores.Select(f => new { Código = f.forId, Empresa = f.forEmpresa, Telefone = f.forTelefone })
                            .Where(c => c.Código == _codigo).OrderBy(c => c.Empresa).ToList();
                    }
                    else
                    {
                        dgvFornecedor.DataSource = DB.Fornecedores.Select(f => new { Código = f.forId, Empresa = f.forEmpresa, Telefone = f.forTelefone })
                            .Where(c => c.Empresa.Contains(txtPesquisa.Text)).OrderBy(c => c.Empresa).ToList();
                    }

                }
            }
            else
                ManipularFornecedores();
        }

        private void txtPesquisa_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (rdbCodigo.Checked)
                Ferramenta.SomenteNumero(e);
        }

        private void rdbCodigo_CheckedChanged(object sender, EventArgs e)
        {
            txtPesquisa.MaxLength = 9;
            txtPesquisa.Clear();
        }

        private void rdbEmpresa_CheckedChanged(object sender, EventArgs e)
        {
            txtPesquisa.MaxLength = 32767;
            txtPesquisa.Clear();
        }

        private void ckbAtivos_CheckedChanged(object sender, EventArgs e)
        {
            ManipularFornecedores();
        }

        private void ckbInativos_CheckedChanged(object sender, EventArgs e)
        {
            ManipularFornecedores();
        }

    }
}
